package com.boyi.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.web.client.RestTemplate;

import java.nio.charset.Charset;
import java.util.Base64;

/**
 * @author tingwen
 */
@Configuration
public class RestConfig {
    /**
     * 在该项目中，摆脱eureka单独使用ribbon 时不需要使用 @LoadBalanced 注解，使用会报错
     */
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    /**
     * 要进行一个Http头信息配置
     */
    @Bean
    public HttpHeaders getHeaders() {
        // 定义一个HTTP的头信息
        HttpHeaders headers = new HttpHeaders();
        // 认证的原始信息
        String auth = "admin:admin";
        // 进行一个加密的处理
        byte[] encodedAuth = Base64.getEncoder()
                .encode(auth.getBytes(Charset.forName("US-ASCII")));
        String authHeader = "Basic " + new String(encodedAuth);
        headers.set("Authorization", authHeader);
        return headers;
    }


   /* @Bean
    public IRule ribbonRule() { // 其中IRule就是所有规则的标准
        // 随机的访问策略 ， 默认是 轮询 RoundRobinRule()
        return new com.netflix.loadbalancer.RandomRule();
    }*/

}